package 线程启动;

public class StartVsRun {
    /**
     * java StartVsRun:
     * 1. 执行java.exe进程，分配内存
     * 2. 创建java虚拟机，执行StartVsRun类加载
     * 3. 创建一个main线程，执行StartVsRun.main()
     * @param args
     */
    public static void main(String[] args) {
        //main方法执行，也是存在一个main线程的
        //main线程：一直处于runnable
        //while (true){}

        //t线程：一直处于运行（）
        //main线程创建Thread的代码,没有执行run
        //main线程：只是执行了new Thread(new Runnable())：只是执行这两个构造方法
        Thread t = new Thread(new Runnable() {
            @Override
            public void run() {
                while (true){}
            }
        }, "t线程");
        t.start();

        //线程对象.run，只是属于普通对象的实例方法调用，没有启动线程！！
        Thread r = new Thread(new Runnable() {
            @Override
            public void run() {
                while (true){}
            }
        }, "t线程");
        r.run();
    }
}